# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:张广勤
@Web site: https://www.tunan.wang
@Github:www.github.com
 
@File:getlastdate1_0.py
@Time:2024/12/23 19:02

@Motto:不积跬步无以至千里，不积小流无以成江海！
"""

# python,某一目录下，文件名以日期排列，扩展名为md,写一函数，返回文件名中的最新日期
# 文件名日期格式为YYYYMMDD,改写代码
import os
from datetime import datetime


def get_latest_date(directory):
    # 确保目录路径存在
    if not os.path.exists(directory):
        raise ValueError("Directory does not exist")

    # 存储最新的日期和对应的文件名
    latest_date = None
    latest_filename = None

    # 遍历目录中的文件
    for filename in os.listdir(directory):
        # 检查文件扩展名是否为.md
        if filename.endswith('.md'):
            # 尝试从文件名中提取日期
            try:
                # 假设日期在文件名的最后8位
                date_part = filename.split(".")[0][-8:]
                # print(date_part)
                # 将日期字符串转换为datetime对象
                file_date = datetime.strptime(date_part, '%Y%m%d')
                # 如果latest_date为空或file_date更新，则更新latest_date和latest_filename
                if latest_date is None or file_date > latest_date:
                    latest_date = file_date
                    latest_filename = filename
                    # print(latest_filename)
            except ValueError:
                # 如果日期格式不正确，跳过该文件
                continue

    # 如果找到了最新的日期，则返回，否则返回None
    return latest_date.strftime('%Y%m%d') if latest_date else None


# 使用示例
directory_path = 'news_md/'

if __name__ == "__main__":
    latest_date = get_latest_date(directory_path)
    print(latest_date)
    print(type(latest_date))
    if latest_date:
        print(f"The latest date is: {latest_date}")
    else:
        print("No .md files found or no valid date found in filenames.")